package com.lcf.system.dto.menu;

import com.lcf.system.enums.SysMenuTypeEnum;
import com.lcf.system.enums.SysMenuUseEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 菜单(SysMenu)表实体类
 *
 * @author lcf
 * @since 2025-02-25 12:24:22
 */
@Data
@NoArgsConstructor
public class SysMenuDTO {
    @Schema(description = "菜单名称")
    @NotBlank(message = "菜单名称不能为空")
    private String menuName;

    @Schema(description = "菜单类型1目录2菜单3按钮")
    @NotNull(message = "菜单类型不能为空")
    private SysMenuTypeEnum menuType;

    @Schema(description = "菜单用途1平台2租户")
    @NotNull(message = "菜单用途不能为空")
    private SysMenuUseEnum menuUse;

    @Schema(description = "父菜单id")
    private Long parentId;

    @Schema(description = "路由标识")
    @NotBlank(message = "路由标识不能为空")
    private String menuCode;

    @Schema(description = "权限标识（多个以英文逗号间隔，多个接口调用权限）")
    private String permissionCodes;

    @Schema(description = "排序")
    private Integer sortOrder;
}

